Jump To:
Technical Q&As: Hardware
The I/O Kit is the device driver subsystem of Mac OS X and is part of Darwin. The I/O Kit provides a set of C functions and C++ classes--including object-oriented abstractions common to various hardware families--that developers can use to create device drivers. In addition, for many device types, the I/O Kit provides a device interface that developers can use to enable an application to communicate with and control hardware from user space.

View all Device Drivers Technical Q&As.
Document Descriptions
On Off
Display

Sort by
Title
Sorted by
Date
Available FireWire Isochronous Bandwidth (HTML)
QA1356: Discusses attempting to "pre-flight" an isochronous bandwidth allocation request by reading the currently available bandwidth.
2004-07-07
Generating an NMI Without a Programmer's Switch (HTML) ()
QA1264: Explains how to generate a non-maskable interrupt (NMI) on CPUs without programmer's switches.
2004-04-26
DDR SDRAM ICs for PowerBooks and iBooks that use Memory bus slewing (HTML)
QA1344: Specifies DDR SDRAM IC optimization for PowerBooks and iBooks that use Memory bus slewing.
2004-03-18
Issues with boot time KEXT loading (HTML) ()
QA1087: Explains how to solve problems with loading KEXTs at boot time.
2004-01-15
Installing an I/O Kit KEXT Without Rebooting (HTML)
QA1319: Describes the state of the art of installing I/O Kit kernel extensions (KEXTs) without requiring a restart.
2003-10-28
Sleep vs. Doze on Mac OS X (HTML)
QA1309: Discusses and demonstrates sleep versus doze detection on Machintosh Mac OS X
2003-10-09
How can I tell if a PCI device has on board I/O space? (HTML)
QA1287: Demonstrates "how to" tell if a PCI device has on board I/O space.
2003-09-24
SDRAM Problems With Self-Powered USB Devices (HTML) ()
HW82: Alerts that non-compliant, self-powered USB devices plugged into a G4, can cause problems with low-voltage-sensitive SDRAM .
2003-08-21
Bluetooth Radio Power Class for Apple Systems (HTML) ()
QA1278: Notes Preferred Bluetooth Transmitter Characteristics for products designed for Apple Systems.
2003-08-06
Empty Memory Objects (HTML) ()
QA1259: Describes how two memory management edge cases are handled by the common Mac OS memory allocators.
2003-04-21
Programmatically causing restart, shutdown and/or logout (HTML) ()
QA1134: Describes how to programmatically cause restart, shutdown, sleep or logout.
2003-02-10
Why does logging keep my Printer Module from working? (HTML) ()
Deprecated - QA1182: Describes some problems with standard printf logging in a Printer Module on Jaguar.
2002-11-06
Why don't all of my PDE localizations show up in all applications? (HTML) ()
QA1185: Explains why some PDE localizations might not appear in all applications.
2002-10-16
Faster DDR DRAM in the 867MHz Power Mac G4 (Mirrored Drive Doors) (HTML) ()
QA1191: Confirms the use of faster DDR DRAM in the 867MHz Power Mac G4 (Mirrored Drive Doors).
2002-08-19
PC100 SDRAM DIMMs on the Flat Panel iMac (HTML) ()
QA1130: Describes PC100 SDRAM DIMM limitations on the "original " Flat Panel iMac.
2002-03-18
IODeviceTree & the IORegistry (HTML) ()
QA1120: Describes the IODeviceTree plane in the Mac OS X IORegistry.
2002-02-13
IOLog and Interrupt Context (HTML) ()
QA1100: Describes when IOKit runs at primary (hardware) interrupt context.
2002-02-13
Working with Configuration Variables (HTML) ()
QA1119: Explains how to delete a specific Open Firmware configuration variable without using Command-Option-P-R.
2002-02-13
Energy Star PCI Device (HTML) ()
QA1108: Provides useful information for developers of Energy Star-compliant PCI devices.
2002-01-15
IOKit Framework Headers (HTML) ()
QA1107: Describes the differences between the headers in IOKit.framework and the I/O Kit headers in Kernel.framework.
2002-01-15
Menu Bar Clock and NVRAM (HTML)
QA1102: Explains why booting with the Command-Option-P-R keys doesn't reset date and time preferences.
2001-12-21
Resetting NVRAM to factory defaults (HTML)
QA1103: Describes what happens when you boot holding the Command-Option-P-R keys.
2001-12-21
Adding dependencies with kmodload (HTML)
QA1097: Illustrates how to specify dependencies when using kmodload.
2001-12-05
SDRAM, CAS Latency for the "Quicksilver" PowerMacG4s (HTML)
QA1071: Describes the supported CAS Latency values for the "QuickSilver", PowerMac G4 CPUs.
2001-09-13
Determining RAM size & location in New World Machines (HTML)
QA1065: Demonstrates Open Firmware method of determining RAM size & location in New World Machines.
2001-08-01
Serial API Choice (HTML)
DV39: Discusses the choice of serial APIs supported by traditional Mac OS and Mac OS X.
2001-07-02
128Mb SDRAM ICs limitation on original "Bronze Keyboard" Powerbook G3 (HTML)
QA1040: Outlines Memory ICs design limitation on original "Bronze Keyboard" Powerbook G3.
2001-06-21
Displaying PCI Configuration Registers contents in Open Firmware (HTML)
QA1036: Demonstrates how to display PCI Configuration Resister contents in Open Firmware.
2001-05-18
Mac OS X and root access (HTML)
QA1013: Describes how to enable root access in Mac OS X.
2001-03-13
Open Firmware Memory bus speed (HTML)
HW97: Describes a method to display memory bus speed for G3 or G4 Macintosh in Open Firmware.
2000-09-22
Open Firmware version number (HTML)
HW96: Discusses the unique values of Open Firmware version numbers.
2000-09-22
Open Firmware and the devalias node (HTML)
HW95: Describes why the contents of the Open Firmware devalias node varies between Macintosh models.
2000-09-05
The "packages" node in the device tree (HTML)
HW90: Describes the "packages" node in the Open Firmware device tree.
2000-09-05
PCI Macintoshes and CardBus controllers (HTML)
HW87: Explains why older PCI Macintoshes do not recognize a Cardbus controller.
2000-09-05
A SCSI little secret (HTML)
HW81: Details what to expect when accessing the motherboard SCSI bus on the Blue & White G3.
1999-12-20
Is the Open Firmware device tree object oriented? (HTML)
HW80: Discusses the object-oriented attributes of the Open Firmware device tree.
1999-11-15
PCI Header types (HTML)
HW78: Describes the three required types of PCI headers to be provided in its configuration header space.
1999-11-15
When to use PCMCIA, PC Card, and CardBus (HTML)
HW77: Explains the differences between PCMCIA, PC Card, and CardBus.
1999-11-15
Are the Name Registry device tree nodes unique? (HTML)
Deprecated - HW64: Discusses whether Name Registry nodes copied from the Open Firmware device tree are unique.
1999-10-11
How do I change the numeric base for the Open Firmware user interface? (HTML)
HW66: Explains how to change the numeric base for the Open Firmware user interface.
1999-10-11
How do I determine the top of the Open Firmware dictionary? (HTML)
HW69: Explains how to determine the top of the Open Firmware dictionary.
1999-10-11
Sample code for allocating an amount of dictionary space (HTML)
HW71: Discusses the allocation and the setting of memory for Dictionary space in Open Firmware.
1999-10-11
What is the "dump" word and how do I use it? (HTML)
HW68: Describes the function of the Open Firmware word "dump" and how it can be used.
1999-10-11
What is the word "see" and how do I use it to help me find what a word does? (HTML)
HW72: Explains the function and use of the Open Firmware word "see".
1999-10-11
What numeric base is the default for the Open Firmware user interface? (HTML)
HW65: Describes how the default numeric base used by the Open Firmware user interface is hexadecimal.
1999-10-11
Which Machines Support Driver Services Library and the MP Nanokernel? (HTML) ()
HW63: Lists the systems that do and don't support the Driver Services Library and the MP Nanokernel.
1999-07-12
Determining Open Firmware configuration variables (HTML) ()
HW56: Discusses how to determine the Open Firmware variables on a system.
1999-03-29
Determining the version of Open Firmware on your Mac (HTML) ()
HW60: Describes a method to display the version of Open Firmware on a Macintosh.
1999-03-29
dl command in 1 machine mode (HTML) ()
HW51: Describes using the "dl" command in 1 machine mode.
1999-03-29
Expansion ROM device properties (HTML) ()
HW50: Describes the Open Firmware properties that should be included in a boot device's expansion ROM.
1999-03-29
Getting started with Forth (HTML) ()
HW53: Describes where FCode driver developers can get information about the Forth programming language.
1999-03-29
if and then in Forth (HTML) ()
HW54: Using the Forth word "if" requires a "then".
1999-03-29
Stopping Forth command scrolls (HTML) ()
HW57: Describes how to limit Forth commands from scrolling off the screen.
1999-03-29
Why did the name of the PCI bridge change? (HTML) ()
HW59: Explains the name change of the PCI bridge to the generic name "pci" in Open Firmware.
1999-03-29
Are interrupts enabled while Open Firmware is running? (HTML) ()
HW44: Explains that interrupts are disabled when Open Firmware is running.
1999-02-15
Booting after invoking the Open Firmware user interface (HTML) ()
HW48: Tells how to boot a system after entering the Open Firmware user interface.
1999-02-15
How does Open Firmware generate the name property? (HTML) ()
HW39: Describes the Open Firmware name property generation process.
1999-02-15
Invoking the Open Firmware user interface (HTML) ()
HW45: Describes how to invoke the Open Firmware user interface on startup.
1999-02-15
PCI bus on the iMac (HTML) ()
HW42: Explains that the iMac has a PCI bus even though it has no expansion slots.
1999-02-15
What are configuration variables in Open Firmware? (HTML) ()
HW38: Defines the configuration variables in Open Firmware.
1999-02-15
What are NewWorld and Open Firmware version 3? (HTML) ()
HW33: Describes "NewWorld project" and tells what part Open Firmware version 3 plays.
1999-02-15
What is meant by 1 machine mode verses 2 machine mode with respect to Open Firmware? (HTML) ()
HW36: Documents 1 machine mode vs. 2 machine mode in Open Firmware.
1999-02-15
PrepareMemoryForIO in the NewWorld (HTML)
DV33: Explains the correct use of PrepareMemoryForIO on DMA buffers when writing a device driver for DMA software.
1998-12-07
SCSI ID from vRefNum (HTML) ()
DV29: Legacy Mac OS technique for identifying the ID of a SCSI Parallel device containing a specified disk volume.
1997-05-23
Detecting a CD-ROM (HTML) ()
DV18: Demonstrates CD-ROM drive detection.
1997-01-31
PCI Type 1 Cycles (HTML)
HW26: Describes the circumstances when the PowerMac generates a Configuration Type 1 command.
1995-07-15
ANSI SCSI Standards (HTML)
Deprecated - DV03: Describes past Macintosh systems that did not fully support the ANSI SCSI-1 standard.
1995-07-01
Getting a List of Drivers & LUNs (logical unit numbers) (HTML)
Deprecated - DV04: Describes a legacy Mac OS technique for obtaining a list of SCSI Parallel drivers, devices, and LUNs.
1995-07-01